- web6047 - (2021/09/10(金) 現在、システム調整中のため、一部の表示がおかしいかもしれません)

 [Under 1024px]

web6047 2021年 8 web6047 2021年 8

プログラミングやRPG(作るほう)が好きな人の日記



このウェブページは毎日 夜11時にアクセスできなくなります。

朝6時半に再開されます。(世の中のネット依存対策として)

例外でアクセスができる場合があります。上のメニューの「aboutThisWebsite」を参照してください。


最近観ているアニメ:

日付
(上ほど新しい)
タイトル無料配信
(各話配信日)
公評価私評価
2021/7/25~視聴中 機動戦士ガンダムSEED HDリマスター(リンクは Yahoo GYAO で検索)
ロボットアニメ/2002年TBS系列/各話25分程度
ファーストガンダムを彷彿とさせる物語展開+エヴァンゲリオンという感じの内容。
月火水木金土日 ★★★☆☆
3.6
★★★
3.8
2021/7/15~視聴中 ドラゴンボール(リンクは Yahoo GYAO で検索)
冒険・格闘技/1984年週刊少年ジャンプ/各話25分程度
月・水・金・・ ★★★★
4.8
★★★★
4.5
2021/5/18~視聴中 はじめの一歩(リンクは Yahoo GYAO で検索)
ボクシング/1989年週刊少年マガジン/各話25分程度
大人になってわかる、ドラゴンボールを上回る面白さ。スケベ表現がたまにあるので男性向け?
月・水・・土・ ★★★★
4.5
★★★★★
5

最近観た映画:

日付
(上ほど新しい)
タイトル 無料配信
(日付まで)
公評価 私評価
2021/8/6 ターミネーター4 【吹替版】(リンクは Yahoo GYAO で検索)
SFアクション/2009年アメリカ/01:54:49/(シュワいない)
2021年8月7日(土) 23:59 ★★★
3.8
★★★
3.2
2021/7/30 インストール(リンクは Yahoo GYAO で検索)
ドラマPG12/2004年日本/01:34:31/上戸彩
上戸彩が本当の女子高生みたいに見えたから★4(でも当時二十歳くらいだからそう見えて当然か??)
2021年8月10日(火) 23:59 ★★
2.2
★★★★
4
2021/7/15 ラスト・ターゲット(リンクは Yahoo GYAO で検索)
サスペンス/2010年アメリカ/01:44:47/ジョージ・クルーニー
観る人を選ぶ物静かな映画。
2021年8月7日(土) 23:59 ★★★
3.7
★★★★
4

最近買ったもの:

日付
(上ほど新しい)
タイトル 公評価 私評価
2021/8/7 曲:アンインストール(リンクは Apple Music の当該ページへ)
2007年の「ぼくらの」というロボットアニメの主題歌
歌詞を読みましたが、「突然現れた新しい現実に対し、受け入れ、やるっきゃない」と言っているのかなぁ…
★★★★★
5
★★★★
4
2021/7/9 ゲーム:ザ・トリロジーズ -T&E SOFT / XTAL SOFT COLLECTION-(リンクは EGG の当該ページへ)
PCレトロゲームのセット。RPG開発の研究のために予約で購入。発売日は未定だそうです。
発売前 発売前
2021/5/29 曲:最強○×計画(リンクは Apple Music の当該ページへ)
2006年の「すもももももも 地上最強のヨメ」というアニメの主題歌
★★★★
4.5
★★★★
4
2021/5/15 プラモ:MG スーパーガンダム(ver1.0)(リンクは Amazon 同商品ページへ)
1998年発売のガンプラです。街の小さなおもちゃ屋さんで売れ残っていたのを買いました。
★★★★
4.1
作り途中です


日記:

2021/8/29(日)

RPG のエフェクト

私が最近進めている「全体的・基本・簡潔のRPG」のプログラムのための、「エフェクト」についての試作プログラムです。

▼エフェクト「雨」
▼エフェクト「回転」+「拡大縮小」

見て遊びたい方のための説明

ここをクリックすると新しいウィンドウを開いて JavaScript を実行します。

キーボードが必要です。タッチデバイスには対応していません。

  で画面中央の青いを動かし、赤いが描かれた部分に乗ると、エフェクトが発動します。

用意しているエフェクトは、「拡大縮小」、「雨」、「回転」、「振動」、「フラッシュ」、「フェードアウト」の6点です。

複数のエフェクトを組み合わせて同時に動かすこともできます。雨を降らせながら画面を振動させればムード満点です。

(一番下の赤いで雨を降らせた後、一番上の赤いに乗る)

プログラムを理解したい方のための説明

ここをクリックすると新しいウィンドウを開いてプログラムリストを表示します。

この試作プログラムは .html ファイル単体で動作しています。

プログラム中の remaining(リメイニング)という英単語は「残り」という意味です。

プログラム中の story という単語は、RPG の開発でよく使われる「イベントスクリプト」のことです。

プログラムを理解したい方のための説明(1/6) - JavaScript の構文について

JavaScript を使用しています。以下について理解していないと難しい内容となっています。(以下5項目)

  1. JavaScript のオブジェクト指向を利用しています。(class や extends といったキーワードを使用しています)
    JavaScript で Hello World! プログラムを作るときはだいたい以下のようになりますが、
    <SCRIPT>
    alert( "Hello World !" );
    </SCRIPT>
    これを、オブジェクト指向(class)を使って書くと以下のようになります。
    <SCRIPT>
    class Test {
        constructor() {
            alert( "Hello World !" );
        }
    }
    test = new Test();
    </SCRIPT>
    上の書き方で慣れている人にとっては、下の書き方は「面倒な書き方」に見えたり、「上の書き方で満足しているのでわざわざ下の書き方に変更する必要はない」と感じるのではと思います。
    多くのプログラマーたちが class を書いているときに期待することは、
    ・プログラム全体が半自動的に(いつのまにか)整頓されること
    ・整頓されるので、拡張性が高まる
    ・オブジェクト指向の extends(継承)が利用できること。それが結構期待した通りに動いてくれるので楽しい。
    ・(JavaScript においては)1つのページで2つ以上のスクリプトを同居させたいときに、クラスを使えば、変数名の競合や関数名の競合を避けられる。
    だいたいこんな感じではないかと思いますが、仕事でオブジェクト指向を使っている人からすれば、上記の他にもっと違う「期待」があるかもしれません。
    class を使ったプログラミングがあまりに便利で、プログラミングしていて気持ちが良いので、みなさん class を書いているときには上記のように何かしら期待をともないながら書いていると思います。
    ”その物体のために用意された関数、その物体のために用意された変数”、、、class を書くことは、どこかロボットを作るような感覚に似ています。私が初めてオブジェクト指向を導入した当初は「ロボットを作っているみたいだ」と思ったものです。
  2. JavaScript の Promise, async, await を使用しています。(これが一番難しいと思う)
    async function story() {
        alert( "Hello" );
        await new Promise( function( sigotoOk ) {
            setTimeout( sigotoOk, 3000 );
        } );
        alert( "World !" );
    }
    ・await を使うことで、その関数をその場所で一時停止できます。
    ・await 文が含まれる関数(上記 story() 関数)には async を付けないとエラーになります。
    ・Promise の引数に設定した関数はとりあえずすぐに実行されます。
    ・そのなかで、sigotoOk() をあるタイミングで実行するようにすれば、一時停止を解除できます。
    (上のプログラムでは最初に Hello と表示された後、3秒後に World ! と表示されます。コピペして story() を呼び出してもらえば動きを確認できます)

    これによって、エフェクトが終わるまで待ち、続いて別のエフェクトを実行するとか、キーが押されるまで待ち、押された後にエフェクトを入れるとかそういう動作を1つの関数の中で実行できるようになります。それがつまり、JavaScript の関数をゲームのイベントスクリプトとして使えるようになる、ということです。

    上記のプログラムの await 以降を下記のように別の関数に分けることも多いです。下記プログラムは上記プログラムと同じ動きをします。
    async function story() {
        alert( "hello" );
        await effect1();
        alert( "world !" );
    }
    function effect1() {
        return new Promise( function( sigotoOk ) {
            setTimeout( sigotoOk, 3000 );
        } );
    }
    Promise, async, await は結構奥が深くてすべてを理解するのは難しいですが、このエフェクト試作品プログラムを理解するだけなら これだけ知っておいてもらえれば大丈夫です。
  3. bind() メソッドを使用しています。
    「その関数(メソッド)内の this は何なのか」を指定するメソッドです。
    そのままだと this が window(だったか undefined だったか)になる場合が多いので多用しています。
    たとえば、setTimeout() とか、onkeydown() などのハンドラ関数や、Promise()で指定する関数は、this が Window になってしまうので、bind() を使う必要があります。「bind」は英単語で「むすびつける」という意味だそうです。バインドと読みます。
    class Test {
        constructor() {
            setTimeout( function() {
                alert( this.constructor.name );    //'Window'
            }, 1000 );

            setTimeout( function() {
                alert( this.constructor.name );    //'Test'
            }.bind( this ), 2000 );
        }
    }

  4. アニメーションのために、requestAnimationFrame() を使用しています。
    setTimeout() は以下のように手軽に使えるのに対し、、
    function test() {
        console.log( "Hello World !" );
        setTimeout( test, 1000 );
    }
    test();
    requestAnimationFrame() で同じことをやろうとすると、以下のように自分で時間間隔(経過時間)を調べる必要があります。
    beforeTime = 0;
    function test( timestamp ) {
        if( timestamp - beforeTime >= 1000 ) {
            console.log( "Hello World !" );
            beforeTime = timestamp;
        }
        requestAnimationFrame( test );
    }
    test();
    requestAnimationFrame() を使うメリットはそれがアニメーションのために用意された関数であって、見た目の動きがスムーズに感じられます。まるでファミコンみたいに安定感のある動きになります。
    それに対し、setTimeout() や setInterval() はアニメーションのための調整がされていないので動きがぎこちなくなり、ファミコンみたいなきれいな動きになりません。
    一度 requestAnimationFrame() に慣れてその良さを実感してしまうと、setTimeout() や setInterval() には戻れなくなります。
  5. CANVAS の save/restore()、translate()、rotate() 等を使用しています。
    translate( x, y ) とすれば、描画の原点をその位置へ移動できます。
    その事前に save() を行い、事後にrestore() すれば、原点は元に戻ります。
    function draw( cc ) {    //ccは「CANVASコンテキスト」
        cc.save();
            cc.translate( 100, 100 );    //描画の原点をその位置へ移動できます。
            cc.rotate( 3.14 / 4 );       //以後原点を中心に45度回転して描画
            cc.fillStyle = "lightblue";
            cc.fillRect( 0, 0, 150, 100 );
        cc.restore();    //原点は元に戻ります。(回転も戻ります)

        cc.fillStyle = "red";    //原点を示す
        cc.fillRect( 100, 100, 8, 8 );
    }
    save() と restore() をやらないと、たとえば描画のたびに translate( 10, 10 ) を繰り返した際、2回目の描画で 20, 20 が原点、3回目の描画で 30, 30 が原点になってしまいます。以後どんどん原点が右下へ移動していきます。そのような使い方は通常はやらないので、基本的に translate() や rotate() 等、画面をいじるメソッドを行う前後には save(), restore() を入れるようにします。

以上の5項目が、この試作プログラムを理解するための前提条件となっています。

プログラムを理解したい方のための説明(2/6) - 個人的な手法

そのほか、個人的な手法として以下のようなしくみを導入しています。

プログラムを理解したい方のための説明(3/6) - 関数名、変数名で遊んでいる

それから、プログラム中に afterEffects という名前の配列が出てきますが、Adobe の「After Effects」というソフトウェアの名前を持ってきて遊んでいます。関数名に tai(), aji(), saba() といった命名をするのは情報系の学生でもやっていることなので、恥ずかしがらずに思い思いにやると良いでしょう。私が最近やったのは、

プログラムを理解したい方のための説明(4/6) - 汎用的な書き方をしている

このエフェクト試作は汎用的にプログラムしているので、マップ全体に限らず、キャラクター1体単位など、「描画個体」に対して効果が出るようになっています。たとえば「振動」エフェクトは、マップ全体に対して行えば「地震」に見えるし、キャラクター1体に対して行えば「身震い」しているように見えます。

this.effectz.quake( this, 2, 50, nowMs + 4000 );    //マップ全体に対して

this.effectz.quake( this.player, 2, 50, Date.now() + 800 );    //キャラクター1体に対して

赤い部分を変えることでエフェクト対象が変わります。

プログラムを理解したい方のための説明(5/6) - エフェクトの処理が、afterEffects と beforeEffects の二手に分かれている

afterEffects と beforeEffects の二手に分かれているのは、エフェクトの内容が「描画前に実行したい命令」と「描画後に実行したい命令」とで分かれているためです。

たとえば、「振動」エフェクトは画面全体をゆらしますがこれは描画位置を小刻みに左右に変更して実現しています。これは描画の前提条件を変えるもの( translate() )なので beforeEffects に入れます。「雨」エフェクトは描画後に上から雨粒を描きたいので afterEffects に入れます。

プログラムを理解したい方のための説明(6/6) - エフェクト同士の時間的なズレを防止

複数のエフェクトを組み合わせて同時に動かす際、「あるエフェクトを何秒間」と計画通りにプログラムが動いてくれないと「同時に終わるはずなのに、あるエフェクトが少し遅れて終了する」という結果になってしまいます。計画通りに動かすために、エフェクトの終了判定に Date.now() という現在時刻のメソッドを使っています。

現在時刻 >= エフェクトの終了時刻

この条件が成立したらエフェクトが終了する。というプログラムになっています。(quake, flash)

地震(quake)やフラッシュ(flash)はガタガタガタ、シパシパシパと一定時間繰り返せばよく、終わりの状態は特に決まっていないので、この方法でいいのですが、回転や拡大縮小、フェードアウトは、終了時には、回転は360度まで回転していなければならないし、拡大縮小は指定の拡大率になっていなければならないし、フェードアウトはちゃんと真っ暗で終わらなければなりません。上記の時間の条件で終わらせようとすると回転の途中で終わる、という結果になってしまいます。実際にそうなって悩みました。

その解決として、アニメのパラパラの1回において、その1回で動かす量を、「(終わりの状態までの)残りの動作量を残りの描画回数(パラパラ回数)で割る。それをstep(その回の動作量)とする」という計算で決めています。(zoom, rotate, fadeout)

そうすることで、指定時間に合わせるためにどれくらい動かす というのを毎回計算しなおすので、毎回時間的なずれが修正されて、ピタッと指定時間に終了できます。

このおかげで、複数のエフェクトを組み合わせて動かすことができ、表現力豊かなエフェクトになるわけですが、その代わり難しい内容となってしまいました。


コメント

「全体的・基本・簡潔のRPG」のプログラムを目指していますが、この試作プログラムはまだまだ難しいところだと思います。

quake や rotate など複数あるエフェクト関数を、単なる関数の配列にするのか、ゲームのプログラムのメソッドとして普通に並べるのか、クラスにまとめるのか、と考えて、クラスを選びました。

そして、静的(クラスメソッド)で良いと思ったので各メソッドは static にしていましたが、各メソッドでゲーム本体(app)を参照する必要が出てきたので static を外して、new Effectz( app ) とするようにしました。

単なる関数の配列だと、それがちゃんと動くのかどうか不安になったとき、本番プログラムの中でテストをしなければならなくなり、それが難しさにつながりそうだと思いました。ゲームプログラムのメソッドとして普通に並べるというのも同じです。取り回しが悪いと言うのかなぁ。そうやって組み込んでしまうと身動きが取れないかんじがします。

別のクラスにすれば、テスト用のプログラムを組んでそのまま試すことができると思います。


(訪問者のどんなニーズと この記事がつながるか)


2021/8/22(日)

PC-9801 UV2、21、11 本体を

古いパソコン(レトロPC)の PC-9801 UV を買おうか買うまいか悩んでいます。

← PC-9801 UV21

価格は、

なぜほしいのか(アウトライン式にまとめ)

◎ 98ハードの本を買って、、

◎ 前々から気になっていた。

私は中学三年生のころに PC-9801 RX21 を私のわがままで父に買ってもらいましたが、そのことについて今現在後悔していて、その後悔について取り返したいと思っています。

”本来あるべきものがこれだった” という思いで UV を ながめていたい。

※どういうことかというと、当時 PC-9801 を買うときに、父のすすめでは、父の会社の生協の UV21/11 だったが、私は「それでは性能がダメだ」と言って、「RX21 が良い」と、ずっと高価なものを望んで、買わせてしまった。

それが今思えば、高価すぎで、わがままだった。「特別な情報系の学校に進学するので、、」という投資の意味も、父にはあったと思うけど。。

当時の私にはわかりませんでしたが、UV21/11 という機種は、

というように、良いところがあります。なので、父のすすめを聞いたほうが、いろいろ良かったと思います。

ちなみに私が目をつけているオークションの品物は、UV21 ではなく 性能の低い UV2 ですが、ちょっと性能が低いくらいならいいかなと思っています。

今ここで UV を購入すると どんなマイナスがあるか(アウトライン式にまとめ)

× 荷物になる

本体だけではなく、周辺機器、本もある

× 出費になる

後から周辺機器を購入する

後から本を購入する

× 非生産的活動による不健康(生産的活動による不健康なら いいわけが立つけど)

古いパソコンについて活動することは、現在の世の中(一般的なところ)のニーズではない。

(一部のおたくっぽいホビーではニーズが高いけど)

× オークションで買った場合、粗大ごみになる確率がやや高め

オークションの、私がこれだと思っている出品内容を見ると、ちゃんと使えるように整備したと書かれていて、一見良さそうに思えるんだけど、ほかのプロでやっている通販サイトの品物と比べてみると、やはり、どこまで大丈夫なのかが不透明で、ちょっと「賭け」みたいなところがある。

しかもその出品内容をよく見ると疑問点が2つ

そのため、この出品は利用できません。

2021年8月23日 追記:RAM 640KB の正体がわかったので、また買おうかと迷い始めました…


買うことのプラス面とマイナス面の両極に、いちじるしく分かれているから悩むんです。

買う場合は、マイナス面を見越して買うことになります。

そんなことをこの1週間ぐらい考えていました。

今現在は買わない方向に傾いています。。頼みの綱(読み:つな)のオークションの出品内容がダメなので。

2021年8月23日 追記:RAM 640KB の正体がわかったので、また買おうかと迷い始めました…


(訪問者のどんなニーズと この記事がつながるか)


2021/8/17(火)

全体的・基本・簡潔のRPG -[RPG,javascript]

私が趣味で作成している「RPG の試作品」を紹介します。

このお盆休みで、ずっと取り組んでいました。

画像リンクをクリックすると、新しいウィンドウで JavaScript を実行します。
  2023年5月7日追記:長い間動作不良を起こしていましたが、今日気づいて直しました。

プログラムリスト(2640行)

著作権はフリーです。プログラムリストの一部の内容をコピーしたり、または全体をコピーして使ってもらっても大丈夫です。

(試作品なので、ほとんど使い物にはならないとは思いますが…)

お手元で動かすためのファイル一式(RPG_20210817.zip [11.9MB]


コメント

全体的、基本、簡潔、と言っても、現状、複雑になっています。

全国の小中高生で「RPG を自分でプログラムしたいけど、ちょっとやり方がわからない、難しい」という人のために、参考になるようなプログラムを目指しています。そのためには現状難しいところをもっと簡潔にしていく必要があります。それが私の課題です。

また、「自分で考えて作るほうが何倍も楽しい!」というのが人の気持ちの基本だと思うので、私の課題の「見本を示す」というのは、一歩間違えば、相反する内容になります。自分で考えたいところを「これだよ」と言ってしまうので。。その辺をどう調整していくかも、大きな課題です。(最低限の骨組みを示すだけに とどめればいいのかな…)

どうしてスライムがコレ  なのか。

自作 RPG が自然とドラクエに似てしまう問題があるんです。

すでにけっこう…、というかほとんどクリソツ、ドラクエそのものです。

そのままだと、「パクリ」だって叩かれてしまいます。

…最近、集英社のこういう本  を買いました。

「少年ジャンプがどうしても伝えたい、マンガの描き方」(集英社刊、900円)

最近コンビニの本コーナーに並んでいたと思います。

私は漫画家になりたいとは思っていませんが、RPG 開発やホームページ編集をするうえで、いろいろ参考になりそうなことが書いてあると思ってこの本を買いました。

で、さっそく自分自身のパクリの問題の解決策をこの本からいくつか見つけました。

そこに書かれていたことで、「影響元が一つだから気になってしまうんです。たくさん取り入れたらオリジナルになりますよ」とありました。

たしかに私の RPG の影響元は「ドラクエ」1つで、だからこそ似てしまって気になってしまうってことですね。

ドラクエ以外に好きなものはないのか?と思って挙げてみたら、

が出てきました。でもすぐにこの2つから影響を 意図的に出すのは難しいので、、

とりあえず、このスライム(左)をなんとかしようと思いました。



水色のプニプニ物体はだいたいドラクエのスライムを連想させるので、色を変えることにしました。

 → ドラクエのスライムだ

 → ドラクエのスライムベスだ

 → 緑色の透き通ったスライムはいくつかのゲームで登場していて、同じだと面白くない。

 → 桃色(ピンク)なら、雑魚キャラとしては珍しいんじゃないか、と思って、思い切ってピンクにしました。

この「モモスラ」は、新しいほうの「ぷよぷよ」に似てる!と気づきましたが、「ぷよぷよ」のほうは口がありません。だからセーフ。(上の図で口をなくすとぷよぷよになっちゃいます)

このデザインのスライム は他の何かのゲームですでに登場しているかもしれませんが、私はとりあえずそれを知らないので、この「モモスラ」で行こうと思います。

ちなみにコマンドウィンドウの下地が「白」なのも、ドラクエとの差別化のためです。

影響元に似ることについては、「別のものを混ぜて ぼやかす努力が必要」なんじゃないかなと思います。


(訪問者のどんなニーズと この記事がつながるか)


2021/8/10(火)

「PC-9801 ライブラリ」というキーワードでWEB検索して

昔の趣味の再燃だ☆

前々から個人的に PC-9801 というハードウェア(1980年頃のパソコン)について、高校生の頃によくプログラミングしていた経験があるせいか、気になっていました。

PC-9801 リンクは Wikipedia)

今日も何気なく「PC-9801 ライブラリ」というキーワードで情報検索していました。

(「ライブラリ」とはC言語などのライブラリのことで、私の目的は画面に何かを描く「グラフィクス・ライブラリ」です。画面に高速に何かを描けると楽しいので。)


その情報検索でこんな本を見つけました。今から33年前に発売された古文書(こもんじょ)です。

「98ハードに強くなる本II」(1988年 技術評論社)

なぜか無料で全ページを読める状態になっていて、「著者が気を利かせて広く一般に公開しているのかな」と思って、喜んで読んでみました。

読み始めると、すごい勢いで読み進め、スポンジが水を吸収するように内容を吸収する自分を発見しました。

そんなに 98 の情報が欲しかったのか…。


でもちょっと躊躇します。

きっと、「PC-98エミュレーター」やフリーのアセンブラの「NASM」(リンクは Wikipedia)を使えば、私はこの先1年は遊んでいられると思います。

でも『今さら PC-9801 のハードウェアに詳しくなって何になるのか。。』という思いも当然あります。

なぜなら、国民機「PC-9801」の時代は 20 年以上前に終わっていて、今後新しい機種が出るはずもなく、企業の PC として採用されるわけはなく、使うと言ったら遊び(ホビー)で使うくらいでしょう。

98 について取り組んでも無駄に時間を過ごす気がします。

←当時、国民機と呼ばれていたパソコン PC-9801。(画像はホントはPC-88)


でも考えてみれば、意味はあります。

「PC-9801」という具体的な物として見るとあまり意味はないかもしれませんが、「コンピューター/ハードウェア」という大きなカテゴリとして見ると世の中にそのニーズはありそうです。

コンピューターや電子回路などハードウェアは今(昔もそうでしたが)、さかんに開発されていますよね。

ソフトウェアなどプログラミングの世界でもハードウェア的なことをある程度知っていたほうが、プログラミングのがさえることもあります。

それについて本から少し引用すると、、

と、まぁ、こんな感じで、今の時代のコンピューター/ハードウェアに通じる知識を学べそうです。

←家電に組み込まれたコンピューターについて BIOS とか LSI の知識を使う…かな?


ところで、上記の、

「なぜか無料で全ページを読める状態になっていて…」

となっていたことについて調べたところ、

著者が自分の意志で公開しているというものではなく、ある組織か 人物かが、出版社に無断で公開しているというもので、しっかり問題になっていました。

キーワード「archive.org 著作権」を Bing で検索

いろいろなところでニュース記事になっています。

この行為は営利目的ではないので「海賊版」にはあたらないそうです。これを行っている本人は、

「コロナウイルスで図書館が使えないので、人々のために代わりの図書館をネットワーク上に開設した。図書館と同じだ」

と主張しているそうですが、普通に考えて無茶だなと思います。

図書館は税金とかで運営されているんじゃなかったっけ、、、税金を払っている人たちが無料で借りているという形(無料に見えて実はお金を払っている)なんだよなぁ、、

図書館は公共の施設として認知されているから、出版社も「その場所に数冊置くくらいだったら利益に問題は出ない」と考えてその上で「無料で OK」としているんじゃないかな。

だから、公共として認知されていない組織がネットワークを使って本を無料で読める状態にしてしまうと、出版社たちが YES と言うわけはないでしょう。


…そんなわけで、せっかくの本はネットワーク上では読む気になれず、通販で探しました。

アマゾンでは中古で 5000円。高めで難しい。 楽天には無し。

その他の通販を探して、中古を 980 円で購入できました。安くて良かった。

本が届いたら始めるんだろうか……98を…?

 98を~~~~!


8月12日(木)に通販が届きました。

ほしいなと思ってから(九州の長崎のお店から茨城まで)わずか2日で届くなんてすごいな。

自分はそこまで してもらうほど偉くはないって思ってしまう。


(訪問者のどんなニーズと この記事がつながるか)


2021/8/7(土)

全体的・基本・簡潔のRPG -[RPG,javascript]

コマンド入力システムはだいたいできあがり、現在は戦闘システムを作っています。

プログラムの内容を基本的、簡潔にしぼり、プログラミングする内容はシンプルになると思いきや、あれこれいろいろと作る必要があることに気づき、RPG ってそう簡単に作れるものではないんだなと痛感しています。


厳しい中でこそ何かが生まれる


▼30代、40代、50代の方々はこのような
どこか くどいストーリー展開は必要としないかも?


面白いならいいけど、はんぱ な物語なら いらない。
提出した物語10個を上司(編集者)が10個ともボツにするような中で―――

(たとえば鳥山明氏にとっての鳥嶋氏のエピソード
リンク先は Wikipedia の「鳥山明」ページの小題「デビューまでの経緯」です)

――10個ともボツにするような中でくぐり抜けてきた物語をプレイヤーたちは面白いと言う。
それが本当だとすれば、私にはそういう上司がいないから、
私が作る物語はプレイヤーたちにとっては、つまらないもの
と言ってよいでしょう。
でも誰でも「自分の物語を描いてみたい」と挑戦したいところもあると思います。
そういう気持ちは人の気持ちについても自分の気持ちについても大切にしたいと思います。

制作のガイド2点


▼プレイヤーはゲームソフトに対し 5000 円を支払っている。
そこを考えながら作ると、少し変わってくる。


「5000円を支払っている」というのは
昔のファミコンソフトの価格相場をもとにしています。
「プレイヤーはこれを5000円で買う」と思うと、急にどこを調整したほうが良い、という思いがわいて、チープなゲームソフトは説得力のあるゲームソフトへ修正されていきます。あなたが何か、人向けに作っているなら、試しにそう考えてみてはどうでしょうか。(ガイド1)

なお、上図のモンスターはこちらを不敵に にらむよう心掛けました。
そうすることでプレイヤーたちのやる気をくすぐるのではと思います。(ガイド2)


そのプログラムのどこが基本的で、どこがマイナーなのか

どこまでが基本的、簡潔で、どこからが基本的、簡潔を超える部分(マイナー)なのかを判断するのも難しいです。

RPG の基本的なプログラムを示したいので、マイナーな記述(一般的ではないプログラム)は避けなければなりません。

そうかと言って、基本的、簡潔をめざしすぎて、あまりカッコ良くない残念なシステムを作ってもつまらないでしょう。(上図で言うと散切り頭のこと)

たとえば、戦闘システムでは、モンスターが無作為にキャラを選んでただ攻撃してくるというだけでは、変化がなくてつまらないです。

そうではなく、モンスターたちが一人の弱そうなプレイヤーキャラクター、一人のキーパーソンのプレイヤーキャラクターに対し、集中攻撃をしてくるとか、モンスターたちが自分たちを適切に回復するとか、そういう複雑な動きをすれば、戦略を練る必要が出てきて、それが一進一退の攻防になり、ゲームとしての面白さにつながります。

上の私の自作 RPG のスクリーンショット2点は2つとも、今どきのゲームに比べればずいぶんと残念な様子に見えると思いますが、プログラムのほうは基本的、簡潔にしつつも拡張性のある(今どきのゲームに通じる華やかな演出が可能な)プログラムを心掛けているので、たぶん、大丈夫です。

※RPG の基本的なプログラムは問題にしていなくて、1つの作品を作りたいということならこの話はあまり関係がありません。


そのゲームソフトはどの世代をターゲットにするのか

たぶん、30代、40代、50代の方々は、見た目の華やかさよりも、「内容は本当に面白いのか」という部分を見ると思います。

たとえば、ファミコン版ドラクエ3のバラモス城のエビルマージ4人組は緑色の覆面の適当な姿のやつらですが、倒すか倒されるかの瀬戸際になるので内容的に面白いです。

それに対して、10代、20代の方々は、「見た目がダメなら、ダメで面白くない」と言うんじゃないかなぁと思います。(私の偏見ですかね?)

強敵のエビルマージ4人組↓今の時代に若者向けにこの画面でゲームを提供するとは考えにくい。



 


ガンダムにしても、ファーストガンダムで多大な喜びを味わった30代、40代、50代は「RX-78 ガンダム」のあのシンプルなデザインが「良い」と言いますが、今どきの10代、20代の若者たちは、それよりも「フリーダムガンダム」とか「ダブルオー・クアンタ」など、イケイケなガンダムを好んでいるようです。

世代ごとに何が面白いのかという価値観が異なっていて、30代、40代、50代が面白いと思っているものは、かならずしも若者が面白いと思うとは限らないと思います。

もうちょっと上の世代を見ると、60代、70代、80代の方々が体験した「チャンバラ」や「野山を駆け回って遊ぶ」という遊びは、30代、40代、50代の方々にとっては

「わかるけど、どちらかというと ファミコン のほうが面白いよ」

と言うと思います。私も当時はファミコンに夢中でしたから。最初に何を味わってきたのか、が価値観の違いに大きく影響するのではと思います。

そして、今どきの10代、20代の方々は、私の自作の RPG やエビルマージ4人組の画面を見て

「わかるけど、どちらかというと 見た目が華やかで派手 なほうが面白いよ」

と言うのではないでしょうか。魅力的な女の子がいっぱい出てきて華やかで、超豪華な画面エフェクトの数々に夢中なのでは??生まれたときに周りにそういうゲームがあふれていたと思います。

世代交代で同じことを繰り返していて(歴史は繰り返す)、それぞれで異なる価値観を持っています。

ゲーム開発のターゲットは現状、2世代(10代、20代の方々と、30代、40代、50代の方々がゲームで遊ぶ状態)であり、華やかなだけではダメだし(30代、40代、50代がNo)、単に内容が面白いというだけでもダメ(若者がNo)なので、私が重視している「内容の面白さ」(30代、40代、50代向け)のほかに、華やかな演出の道(10代、20代向け)も確保しつつプログラムすることにしています。そういう意味でも基本的、簡潔を目指すだけではなく、ある程度拡張性を準備する必要があります。


また、余談ですが、登場する女の子についても私は「戦いなのだから全員ズボン着用だ!そこに魅力がある!」なんて現代の若者たちの趣味から外れたことを考えていますが、それもほどほどが良いのかもしれません。

ブルマ「ちょっとぐらいなら触ってもいいのよ」 (ほどほどにして露出しましょう)

悟空「オラ、きたねぇケツなんか触りたくねぇ」 (いや、戦いなんだから全員ズボン着用だ!)


コロナウイルス私の状況

7/28(金)の夕方に勤め先企業の計画で1回目のワクチン接種を受けました。(職域接種)

接種会場は待ち行列になっていて40分ほど待ち、接種を受けた後、15分待機させられました。

特に症状が出なかったので、そのまま帰宅しました。

翌日土曜日に、接種した部位の左肩が打撲したみたいに痛みはじめ、風邪みたいな身体の具合の悪さと、咳がありました。

日曜日が症状のピークでしたが、午後くらいから下り坂になっているのを感じました。

ただし、休み明けの月曜日~木曜日まで、ずっと咳が続いていました。

今も咳が軽く残っています。

職場の他の方々も、ある人は肩が上がらない、ある人は職場に来たけど具合が悪い、ある人は38.5℃、ある人は39℃以上の高熱で休み、ある人は様子見で接種せず、という感じでした。


2回目の接種は8/27を予定しています。

私が接種したのはモデルナのワクチンで、ニュースによると、3回目の接種が必要とか言っていますね。


今現在、日本全国では感染者数の最高記録を更新中ですよね。東京都で1日5000人以上、全国で1日1万5000人以上。

そのため、今日予定していた歯医者の受診はキャンセルしておきました。(私は茨城県ですが、茨城県も最高記録更新中)

どこかに出かけるときは目的を単一にしぼって、「ついでに」という行動は取らないようにしています。

目的を複数にするとそれだけ感染のリスクは高まるし、感染した際にどこで感染したのか追うことも難しくなると思って。

私は一人暮らしで、友達が少なく、飲食に誘われることはほとんどないので、冷たく断る/用心しながら誘いに乗る、というようなことはなく、これを読んでいる皆さんとは立場が少し異なるのかなと思います。


(訪問者のどんなニーズと この記事がつながるか)


以降は自己啓発的な内容です。

この表は、このウェブページの管理人のパソコンの使用時間を管理・制限するためのものです。





































NO PC WEEK に代わる PC 使用制限のしくみ(新β版)
No. A1.
開始時
運動
A2.
勉強
1問
A3.
終了時
運動
H1. 予定
作業内容
H2. 予定
作業詳細(進捗%)
判定×の理由
B. 実際
開始時刻
C. 予定
使用時間
(当日限度)
D. 予定
終了時刻
E. 実際
終了時刻
F. 実際
使用時間
G. 判定
◎ 9分以下
○ 10分~19分
△ 20分~29分
× 30分以上
予定


記事をカテゴリ分けする カテゴリをさらに大きな大カテゴリで分ける





予定


記事をカテゴリ分けする 各記事の日付を表示





予定


3Dお姉さんプログラム説明 座標を持った2つの要素について片方がもう片方を追尾し続ける試作(この表のNo. 380の問題を受け)





403
全体的・基本・簡潔のRPG 全体の基本の動き(骨組み)を再度試作
もし時間内に終わらない場合は:あきらめる
21:35 1:30(4:00) 23:00 23:06 1:36
462 全体的・基本・簡潔のRPG 全体の基本の動き(骨組み)を再度試作
(なんか、プログラムを見ているとごちゃごちゃとしていて、どうなっているのか、わからないから)
もし時間内に終わらない場合は:あきらめる
17:20 2:30(4:00) 19:50 20:13 2:53
461 全体的・基本・簡潔のRPG エフェクト試作を適用(80%)
もし時間内に終わらない場合は:あきらめる
21:30 1:30(1:30) 23:00 23:08 1:38
460 全体的・基本・簡潔のRPG エフェクト試作を適用(70%)
もし時間内に終わらない場合は:あきらめる
23:20 1:00(1:00) 24:20 24:29 1:09
459 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
整理できていないまま進もうとしたから、こんぐらがった。。
21:25 1:30(1:30) 22:55 23:30 2:05 ×
458 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
うまくいかなかった
21:50 1:30(1:30) 23:20 23:45 2:05 ×
457 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
21:50 1:30(3:00) 23:20 23:43 1:53
456 × 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
14:20 1:30(3:00) 15:50 16:03 1:43
455 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
デバッグできず
20:50 2:00(2:00) 22:50 23:39 2:49 ×
454 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
21:10 1:30(1:30) 22:40 22:53 1:43
453 全体的・基本・簡潔のRPG エフェクト試作
もし時間内に終わらない場合は:あきらめる
17:50 2:00(2:00) 19:50 20:09 2:19
452 × 全体的・基本・簡潔のRPG 整頓
もし時間内に終わらない場合は:あきらめる
22:55 ほどほどに。 UNLOCK 26:51 どこが
ほどほど
や~
UNLOCK
451 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
(UNLOCKとはいえ7時間はちょっとやりすぎた)
14:10 UNLOCK UNLOCK 21:25 7:15 UNLOCK
450 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
23:25 1:30(4:00) 24:55 25:16 1:51
ちょっと作業: 98エミュレーターでC言語プログラムをコンパイルする環境を作っていた。1.5hくらい。その方法をまとめたメモ→
449 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
16:10 2:00(4:00) 18:10 18:16 2:06
448 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
23:20 1:30(4:00) 24:50 1:04 1:44
447 × 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
16:00 2:00(4:00) 18:00 17:32 1:32
446 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
20:40 2:00(4:00) 22:40 23:24 2:44 ×
445 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
16:10 2:00(4:00) 18:10 18:37 2:27
444 × 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
21:20 2:00(4:00) 23:20 23:26 2:06
443 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
23:30 2:00(4:00) 25:30 25:37 2:07
442 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
20:30 2:00(4:00) 22:30 22:43 2:13
441 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
いつもなら予定終了時刻の時点で「抜け出せない」と感じるとそのまま1時間くらい延長してしまうが、
珍しく、抜け出せた(あきらめることができた)
22:05 1:00(4:00) 23:05 23:15 1:10
440 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
19:15 1:00(4:00) 20:15 20:20 1:05
439 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
16:15 2:00(4:00) 18:15 18:29 2:14
ちょっと作業: 定期的にコマンドを自動実行する際、そのコマンドライン画面に色を付けて表示する方法を調べていた。1h
438 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
22:45 1:00(4:00) 23:45 23:58 1:13
437 全体的・基本・簡潔のRPG プログラムの整頓
もし時間内に終わらない場合は:あきらめる
19:20 2:00(4:00) 21:20 21:25 2:05
436 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
17:15 1:00(4:00) 18:15 18:24 1:09
ちょっと作業: iTunes の評価用の「ものさし」を作り直していた。 この写真だけでは意味が分からないと思いますが…0.5h
ちょっと作業: ダウンロードした曲の出だしが気に入らなかったので SoundEngine で削除していた。1h
435 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
23:30 2:00(2:00) 25:30 25:38 2:08
434 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
23:10 1:30(4:00) 24:40 1:04 1:54
433 全体的・基本・簡潔のRPG 戦闘画面作成
もし時間内に終わらない場合は:あきらめる
18:15 1:30(4:00) 19:45 19:50 1:35
432 全体的・基本・簡潔のRPG コマンドメニュー作成(99%)
もし時間内に終わらない場合は:あきらめる
22:25 1:30(1:30) 23:55 24:01 1:36

この表の意図:

多くの人はパソコンのやりすぎやネットゲームのやりすぎには困っていると思います。

参考に言うと、この表を使う前の私は 1 回の PC 使用時間がノンストップで 17 時間というときもあったし、平均で言うと毎日 9 時間はやっていたと思います。

この表を使ってパソコンの使用時間を 事前に決めてネット上に公開 することで、パソコンのやりすぎを防止できたら、と思います。

また、数年前から考えてきましたが、そういう徹夜とか長時間作業をするよりも、昼間の短時間作業のほうが生産性は高いのではないかと思います。そういう意味でも期待しています。

※以前は NO PC WEEK と称してパソコンを使用しない期間を設けることでやりすぎに対処してきましたが、もっと具合の良い方法はないかと考え、この表を使うようになりました。

記入の法則:

  • 日付は表示していません(私の生活パターンをすべて知らせるのはよくないから)。しかし、白と灰色の色分けは、同じ色の連続で同じ日を表しています。
  • 左端の「A1. 運動」、「A2. 1問」、「A3. 運動」について
    この表の目的とは異なりますが、ついでとして、遊び100%の毎日を送るときでも勉強の習慣を忘れないために、たった1問で良いので解くことにします。
    正直言うと毎回遊ぶ前に必ず1問勉強するのは心が折れそうです。でも慣れさえすれば…と思います。
    行ったら◎、行わなかったら× を記入します。
    2020年11月20日ぐらいから「A1. 運動」を追加しました。パソコンを行う前に運動することを強制するものです。腕立て伏せ10回とか腹筋10回とかです。
    (ホントだったら30回くらいはやりたいところですが、私は体の調子が悪いので、10回程度にしています)
    2021年6月26日「A3. 運動」を追加。PC使用の終了時にも運動する。
    A1はPC漬けによる筋力衰え対策の意味で、筋トレを行い、
    A3はPC作業でこった体をほぐす意味で、ラジオ体操やストレッチ体操を行う。
  • 右端の「G. 判定」について
    「D. 予定終了時刻」と「E. 実際終了時刻」を比べて、オーバーした時間によって判定を行います。
    ◎ 9分以下
    ○ 10分~19分
    △ 20分~29分
    × 30分以上 (オーバー理由を記載する。理由の統計を取れば何が問題なのか把握でき、改善しやすいです)
  • 平日の 1.5h、2.0h の PC 使用の連続が負担になっているので、週のスケジュールは下記のようにする。
    月水で PC 使用しないことでうまいぐあいに「体力回復」されて、「生活」がうまく回り、プログラミング以外の「創作活動」(イラスト等)に時間が取れることを期待します。
    月:0h
    火:1.5h
    水:0h
    木:1.5h
    金:1.5h
    土:4hまで(休日で、翌日も休日)
    日:2hまで(休日で、翌日平日) ←早起きなおかつ(日々の買い物とかじゃなく)散歩するなら 3h やって良い
    (※2021年2月2日:週の各時間を調整しました)
  • ×、△、"記録しなかった長時間作業" が多いと思ったら、バランスをとるために、NO PC WEEK※ を1週間実施する。
    NO PC WEEK とは私自身の健康のために私のパソコンの使用を制限する期間です)


ちなみに、分単位で記録を取ったりして、だいぶマメに見えるかもしれませんが、Windows の日本語入力(MS-IME)で「いま」と入力し、 変換 キーを押さずに ボタンを押すと現在の時刻になります。道具の便利さが人をマメに見せるのかもしれません。

例外事項:

  • 「E. 実際終了時刻」のあと、プログラミングの場合のみスッパリ終了しないで、今後のプログラミングの方針をテキストファイルに書くのは OK にしています。


「スーパーPC WEEK」:

連休中(3連休以上)に、NO PC WEEK をオフにして好きなだけパソコンを使ってよいとする期間を、「NO PC WEEK」に対して「スーパーPC WEEK」と言う。

ただし以下の決まりを守ること。

  • その日に自由にパソコンを使ってもよいが、1回あたり、いつものように表に記入すること。(開始時運動、勉強1問、終了時運動も行うこと)
     (理由: 表が結構有効だから)
  • 1回ごとに、掃除、炊事、洗濯や、別の趣味など、まとまった作業を はさむこと。
     (理由: 1回1回がが連続してつながると回を分けている意味(身体に無理をかけない)がなくなるから)
  • 24時に就寝するよう努めること。(強制ではないが、つとめること)
     (理由: 深夜の神秘的な時間は魅力だが、安定したリズムも好ましいから)
  • 連休の最終日は通常通りとする。
     (理由: 翌日は仕事なので影響するから)
  • 1回の使用時間は2時間を最大とすること。

なお、表の中央やや右寄りの「C. 予定 使用時間(当日限度)」列の "当日限度" には UNLOCK と記入する。


中途結果:

結構いい結果になっています。炊事や掃除、散歩、早起きなどが好ましいリズムでできるようになりました。

(2020年9月6日追記:散歩、早起きは最近あまりできていません。掃除や炊事は理想的にできています)

また、パソコン以外の趣味も進むようになりました。電子回路、ガンプラ、RPG のプログラム以外のモンスターイラストやストーリーなど RPG の肉付け部分の創作、勉強、昔好きだったペーパークラフト等々。

そしてパソコンの趣味自体も深夜遅くまで行うよりも質が高くなったように感じます。制限された短い時間の中で結果を得ようとするので、取捨選択が行われているし、時間が終了して、空いた時間ができ、それがほどよい休憩になり、今後の作業の方針を落ち着いて検討することもできます。それが質につながっているのかなと思います。

この取り組みが、15 才 ~ 18 才くらいまでの高専(中退)に所属していた時に実施できていたら良かっただろうなと思います。でもそれくらいの年齢では経験が浅く、このような効果的なルール作りを行うことはできなかったと思います。自分は人に比べて「創作意欲」や「ゲームで遊ぶ欲望」におぼれやすいところがあり、そのコントロールはとても難しいです。


自分の家族にすすめたい方へ:


(これは イラストAC の無料素材です)

パソコンのやりすぎやネットゲームのやりすぎは社会問題にもなっているので、「うちの子についてなんとかしないと…」と思っているご家族の方は多くいらっしゃると思います。

私の両親も過去に私について問題にしていました。学校へ行かず、毎日朝までパソコンに向かい、悶々としていたんです。


この表はその家族が困っていたときから 30 年後に、私が自分で必要を感じて作ったものです。

私は今 一人暮らしをしていて、自分で生計を立てる中、パソコンにおぼれた生活をすると、生活がうまく回らなくなるんです。

具体的には、

  • 人前で疲れた顔を見せてしまい、人間関係がうまくいかなくなる。もっと具体的には、職場、とこや、お店のレジ、歯医者。
  • 掃除、洗濯、炊事が後回しになり、実質、それらを行う時間がなくなってしまう。深夜遅くや翌日に回したり、行わなかったりする。

これらを改善するために表を作りました。


でも、このような必要にせまられて「自分の動機で始めた場合」と、「人からすすめられて始めた場合」とでは、結果が異なると思います。

自分の切実な動機で始めたなら自分から進んでこの表を活用すると思いますが、外から押し付けられたものはなかなか定着しないものです。

あまり適当なことは言えませんが、「中途結果」タブの中の青い部分で書いたことは、本人にとって得になることなので、「ときどき休憩して、他のあの趣味やってみたらどうだ?」とか「ときどき休憩したほうがプログラミングの質が上がるって話だぞ?」という形ですすめてみたらどうでしょうか。(それでも最終的には自立してもらうことは必要だと思いますが)


私が両親を困らせていたときに、突然、外へ一人で出て行って、一人暮らしを始めたり、接客業を始めたり、いくつか資格取得したりといろいろ行えた理由というのは、正直言ってわかりません。(※しかし途中で失業して2度、実家に戻ったことがあります。1 回目は 21 才くらいのときに 5 年間、2 回目は 35 才くらいのときに1年未満、実家にいて、何もしてなかったり働いたりしていました)

私が両親を困らせていたのは 16 才 ~ 20 才くらいの学生のころですが、そのころ家族と私自身と友人たちがみんなそれぞれ、私の生活について心配したり困ったり悩んだり、あの手この手を試したりしていました。そういう煮詰まったような状況が運命をそのように(解決の方向へ)動かすのかもしれません。運命がどうの というのは変ですが、そのくらいのことしか言えません。何かしら取り組む必要があるということですかね。


この社会問題はクリアーすべきものみたいです。



部屋に閉じこもらずに、散歩に行く取り組み:

右端の写真は散歩中に撮影した写真です。でも面白い写真ではありません。

4連休のさんぽ:

7月22日(木) 良いと思った☆
しげみ から のぞく海
7月23日(金) 良いと思った☆
くもりの砂浜
7月24日(土) 良いと思った☆
はれの砂浜
7月25日(日) 良いと思った☆
はれの砂浜2


お盆休みのさんぽ:

8月6日(金) 仕事疲れで動けなかった☆ ×
8月7日(土) なんかページの編集に取りつかれて、抜け出せないと思いつつ夕方になってしまった☆ ×
8月8日(日) 良いと思った☆ 写真なし
8月9日(月) 良いと思った☆
くもりの砂浜2
8月10日(火) 良いと思った☆
空のグラデーション
8月11日(水) 良いと思った☆
いつも砂浜を撮影している
ハラッパラッパー(原っぱ)
8月12日(木) 良いと思った☆
きのねっこぶぶん
8月13日(金) 良いと思った☆
あめ
8月14日(土) 良いと思った☆
おもしろくない写真(雨天の海)
8月15日(日) (すでに完ぺきじゃないけど)欠かさず行くよりは
たまには外したほうが良いと思って、散歩には行かなかった。
なし
8月16日(月) 良いと思った☆
けど、昨晩の徹夜がこたえた…

おもしろくない写真(雨天の海)

表の星々の装飾は CSS を使いました。昔(30年前)同じような装飾を何かで(Pascal 言語で)行っていたら、女の子から「どうやるの?」と聞かれたことがあります。

だからこの星々の装飾についても女の子の目にとまり、どうやるのか知りたがるんじゃないかなぁと思います。

昔(30年前)は、一言では説明できない内容(画像のビットを XOR や AND など論理演算で合成するという内容)だったので説明できませんでしたが、今回の星々も、一言では説明できません。

(私は女の子とペラペラとしゃべれる人ではないのでそういう意味でも説明できません)

CSS の内容はこれです(リンクはスクリーンショット画像です)

この画像中の CSS の .decoTable というクラスを <table class="decoTable"> のように表のタグに指定するとその表は星々の画像で飾られます。

上記の「これ」のリンクは画像で不親切だし、上行の一言があってもわからないと思うので、サンプルを作りました → stars.zip (クリックするとダウンロード)

(Windows の場合ですが)この zip ファイルをダウンロードしたら右クリックして「すべて展開...」して、中身の stars.html をダブルクリックすれば、自分のパソコンで星々の表を表示できます。

stars.html を右クリックして、「プログラムから開く」>「メモ帳」とすれば、内容を表示して編集できます。

内容について詳しく説明はできませんが、stars.html 中の、

.decoTable td {..} と書いている部分は主に背景画像の これについて設定していて、

.decoTable ... td:after {..} と書いている部分は星々画像 について設定しています。

難しいところがいくつかあって、そのうちの1つは、

『.decoTable ... td:after {..} の position を absolute にしたとき、その上位の td タグの position を relative にすれば、.decoTable ... td:after {..} の位置の基準(原点0,0)は td となる』

というようなことをやっていて、これは CSS について勉強しないと理解は難しいです。

他に難しいのは、

かな?

難しいですが、がんばりすぎると身体を壊すのでほどほどに…。